home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / cgroupstats.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  2KB  |  71 lines

  1. /* cgroupstats.h - exporting per-cgroup statistics
  2.  *
  3.  * Copyright IBM Corporation, 2007
  4.  * Author Balbir Singh <balbir@linux.vnet.ibm.com>
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify it
  7.  * under the terms of version 2.1 of the GNU Lesser General Public License
  8.  * as published by the Free Software Foundation.
  9.  *
  10.  * This program is distributed in the hope that it would be useful, but
  11.  * WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13.  */
  14.  
  15. #ifndef _LINUX_CGROUPSTATS_H
  16. #define _LINUX_CGROUPSTATS_H
  17.  
  18. #include <linux/taskstats.h>
  19.  
  20. /*
  21.  * Data shared between user space and kernel space on a per cgroup
  22.  * basis. This data is shared using taskstats.
  23.  *
  24.  * Most of these states are derived by looking at the task->state value
  25.  * For the nr_io_wait state, a flag in the delay accounting structure
  26.  * indicates that the task is waiting on IO
  27.  *
  28.  * Each member is aligned to a 8 byte boundary.
  29.  */
  30. struct cgroupstats {
  31.     __u64    nr_sleeping;        /* Number of tasks sleeping */
  32.     __u64    nr_running;        /* Number of tasks running */
  33.     __u64    nr_stopped;        /* Number of tasks in stopped state */
  34.     __u64    nr_uninterruptible;    /* Number of tasks in uninterruptible */
  35.                     /* state */
  36.     __u64    nr_io_wait;        /* Number of tasks waiting on IO */
  37. };
  38.  
  39. /*
  40.  * Commands sent from userspace
  41.  * Not versioned. New commands should only be inserted at the enum's end
  42.  * prior to __CGROUPSTATS_CMD_MAX
  43.  */
  44.  
  45. enum {
  46.     CGROUPSTATS_CMD_UNSPEC = __TASKSTATS_CMD_MAX,    /* Reserved */
  47.     CGROUPSTATS_CMD_GET,        /* user->kernel request/get-response */
  48.     CGROUPSTATS_CMD_NEW,        /* kernel->user event */
  49.     __CGROUPSTATS_CMD_MAX,
  50. };
  51.  
  52. #define CGROUPSTATS_CMD_MAX (__CGROUPSTATS_CMD_MAX - 1)
  53.  
  54. enum {
  55.     CGROUPSTATS_TYPE_UNSPEC = 0,    /* Reserved */
  56.     CGROUPSTATS_TYPE_CGROUP_STATS,    /* contains name + stats */
  57.     __CGROUPSTATS_TYPE_MAX,
  58. };
  59.  
  60. #define CGROUPSTATS_TYPE_MAX (__CGROUPSTATS_TYPE_MAX - 1)
  61.  
  62. enum {
  63.     CGROUPSTATS_CMD_ATTR_UNSPEC = 0,
  64.     CGROUPSTATS_CMD_ATTR_FD,
  65.     __CGROUPSTATS_CMD_ATTR_MAX,
  66. };
  67.  
  68. #define CGROUPSTATS_CMD_ATTR_MAX (__CGROUPSTATS_CMD_ATTR_MAX - 1)
  69.  
  70. #endif /* _LINUX_CGROUPSTATS_H */
  71.